package it.pir.es02ChatTCP;

import java.io.*;

public class ClientHandlerObj extends ClientHandler {
	
	public ClientHandlerObj(String nickname, Server server, ObjectInputStream objectInputStream) throws IOException {
		super(nickname, server, objectInputStream);
	}

	@Override
	public void run() {
		ObjectInputStream objectInputStream = (ObjectInputStream)inputStream;
		while(true) {
			try {
				Message message = (Message)objectInputStream.readObject();
				if(message.getType()==Message.MESSAGE) {
					server.broadcastSend(nickname, message);
				} else {
					// ERRORE: I messaggi dopo il primo non devono essere di autenticazione!
					System.out.println("ERRORE!!! Il messaggio deve essere di autenticazione!");
				}
			} catch (IOException e) {
				// Il client si è disconnesso
				try {
					server.broadcastSend(nickname, new Message("SERVER", "L'utente " + nickname + " si è disconnesso.", Message.MESSAGE));
				} catch (IOException e1) {}
				server.removeClient(nickname);
				break;
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}
	}

}
